const ArrayUtils = () => {

}


ArrayUtils.findOne = (array, isMatch) => {
    if (!isMatch) {
        return false;
    }
    if (Array.isArray(array)) {
        for (const index in array) {
            if (isMatch(array[index])) {
                return array[index]
            }
        }
    }
}

ArrayUtils.remove = (array, item) => {
    if (Array.isArray(array)) {
        var index = array.indexOf(item);
        if (index > -1) {
            array.splice(index, 1);
        }
    }
}

ArrayUtils.filter = (array, filter) => {
    if (Array.isArray(array)) {
        return array.filter(item => filter(item))
    }
    return [];
}

ArrayUtils.removeAll = (array, items) => {
    if (Array.isArray(items)) {
        for (const index in items) {
            ArrayUtils.remove(array, items[index]);
        }
    } else {
        ArrayUtils.remove(array, items);
    }
}

ArrayUtils.unique = (arr) => {
    let hash = [];
    for (let i = 0; i < arr.length; i++) {
        if (arr.indexOf(arr[i]) === i) {
            hash.push(arr[i]);
        }
    }
    return hash;
}

ArrayUtils.jsonToArray = (json) => {
    let array = [];
    for (let key in json) {
        array.push({
            key: key,
            value: json[key]
        })
    }
    return array;
}




export default ArrayUtils;